package servlet;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

import to.ProductoTO;
import to.OrdenPedidoTO;
import to.DetallePedidoTO;
import mgr.ProductoManager;

public class AdicionarCarritoPedido extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        procesar(req, resp);
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        procesar(req, resp);
    }
    
    private void procesar(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String cProducto = req.getParameter("cProducto");
        
        OrdenPedidoTO to = new OrdenPedidoTO();
        to = (OrdenPedidoTO) req.getSession().getAttribute("carritoPedidos");
        if (to == null) {
            to = new OrdenPedidoTO();
            to.setList(new ArrayList());
        }
        
        DetallePedidoTO detalle = new DetallePedidoTO();
        ProductoTO productoTO = new ProductoTO();
        productoTO.setCProducto(cProducto);
        ProductoManager bo = new ProductoManager();
        
        boolean esta = false;
        for (int i = 0; i < to.getList().size(); i++) {
           DetallePedidoTO detalle1 = (DetallePedidoTO) to.getList().get(i);
           if (detalle1.getCProducto().equals(cProducto))
                esta = true;
        }

        try {
            if(!esta){
                detalle.setProductoTO(bo.getProducto(productoTO, "0001"));
                detalle.setCProducto(detalle.getProductoTO().getCProducto());
                detalle.setNCantidad(1);
                detalle.setIPrecio(detalle.getProductoTO().getIPrecio());
                detalle.setIDescuento((detalle.getIPrecio()*detalle.getNCantidad())*(detalle.getProductoTO().getPDescuento()/100));
                to.getList().add(detalle);
            }
            req.getSession().setAttribute("carritoPedidos", to);
            getServletContext().getRequestDispatcher("/Registro_Pedido.jsp?esta="+esta).forward(req, resp);
        } 
        catch (Exception e) {
            PrintWriter out = resp.getWriter();
            out.println("<HTML>");
            out.println("<HEAD>");
            out.println("</HEAD>");
            out.println("<BODY>");

            String msg = (String) e.getMessage();
            out.println("<P>" + msg + "</P>");

            out.println("</BODY>");
            out.println("</HTML>");
	}
    }
}
